refactor: standardize bot identity to shadow (match deequ)#278
Merged
Conversation
Rename the bot's user-facing identity from deequ-bot to shadow so all three migrated repos (deequ, python-deequ, dqdl) are uniform. The migration PR kept the legacy deequ-bot name to avoid touching auto-approve.yml; this aligns it with the shared engine's home project. bot.name, the auto-approve clean marker, the workflows[] trigger entry, and the caller workflow name all move in lockstep — changing any one alone breaks the marker match and silently disables auto-approve. - .shadow.yml: bot.name deequ-bot -> shadow - auto-approve.yml: CLEAN_MARKER + workflows[] entry -> shadow / Shadow - issue-bot.yml: workflow name PyDeequ Bot -> Shadow (prompt_sm_prefix stays pydeequ-bot — that is the Secrets Manager namespace, not the bot identity.)
- issue-bot.yml: re-add deequ's comment explaining BEDROCK_REPORTER/CRITIC_MODEL_ID are sourced from repo variables (empty falls back to engine defaults) - .shadow.yml: note the BEDROCK_MODEL_ID secret overrides models.investigator (live opus-4-8), so the yaml value is the fallback; critic has no secret so it runs the yaml value
4d53f9f to
525b457
Compare
Add a check that skips auto-approval when a PR modifies .github/** or .shadow.yml. Without it, a PR that weakens the approval gate (or repoints the bot at a different engine) is approved by the very gate it edits. Paginates listFiles so a large PR cannot slip a guarded file past a 30-item page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Standardizes the bot's user-facing identity from
deequ-bottoshadow, matching awslabs/deequ and awslabs/dqdl. The Shadow engine migration kept the legacydeequ-botname to avoid touchingauto-approve.yml; this follow-up aligns the name with the shared engine's home project so all three repos are uniform.What Changes
Four references move in lockstep — changing any one alone breaks the clean-marker match and silently disables auto-approval:
.shadow.yml—bot.name: deequ-bot→shadow(the engine renders<!-- {bot.name}:clean -->).github/workflows/auto-approve.yml—CLEAN_MARKER→<!-- shadow:clean -->and theworkflows[]trigger entry →"Shadow".github/workflows/issue-bot.yml— workflowname:→Shadowprompt_sm_prefix: pydeequ-botis unchanged — that's the Secrets Manager namespace where this repo's prompts live, not the bot's display identity.Behavior
Clean reviews now carry
<!-- shadow:clean -->; the bot posts as "Shadow" and the footer already reads "Reviewed by Shadow". No functional change beyond the rename.Rollback
Revert this PR — the four references return to
deequ-bot/PyDeequ Botin lockstep.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Also: harden auto-approve
Adds a Condition-0 guard so the bot never auto-approves a PR that touches
.github/**or.shadow.yml(its own guardrails). This PR itself touches those paths, so it correctly requires human approval.